#找出一个一维数组中，两个数和为目标值（n)的下标
#暴力枚举法 T(n) = O(n^2)
li = [2,3,7,11,15]
n = 9
for i in range(len(li)):
    for j in range(i + 1,len(li)):
        if li[j] + li[i] == n:  #如果两数和等于目标值，返回下标
            print(i,j)

#用字典存储遍历过的值T(n) = O(n)
li = [2,3,7,11,15,13]
n = 20
di = {}  #键存储数据，值存储下标
for i in range(len(li)):
    sub = n - li[i]
    if sub in di:  #判断差值在字典中是否有键，有则返回下标，无则返回存入字典
        print(di[sub],i)
    else:di[li[i]] = i
